package aiP.A3.VersandKomponente.DataAccessLayer.Entity;

import aiP.A3.PersistenceService.iEntity;

import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 * User: Hero
 * Date: 13.06.14
 * Time: 19:12
 * To change this template use File | Settings | File Templates.
 */
@javax.persistence.Table(name = "AI_TRANSPORTAUFTRAG", schema = "HR", catalog = "")
//@javax.persistence.Table(name = "AI_TRANSPORTAUFTRAG", schema = "AIP", catalog = "")
@Entity
public class Transportauftrag implements iEntity {
    private int transportauftragsnr;

    @javax.persistence.Column(name = "TRANSPORTAUFTRAGSNR")
    @Id
    public int getTransportauftragsnr() {
        return transportauftragsnr;
    }

    public void setTransportauftragsnr(int transportauftragsnr) {
        this.transportauftragsnr = transportauftragsnr;
    }

    private Date ausgangsdatum;

    @javax.persistence.Column(name = "AUSGANGSDATUM")
    @Basic
    public Date getAusgangsdatum() {
        return ausgangsdatum;
    }

    public void setAusgangsdatum(Date ausgangsdatum) {
        this.ausgangsdatum = ausgangsdatum;
    }

    private int lieferungerfolgt;

    @javax.persistence.Column(name = "LIEFERUNGERFOLGT")
    @Basic
    public int getLieferungerfolgt() {
        return lieferungerfolgt;
    }

    public void setLieferungerfolgt(int lieferungerfolgt) {
        this.lieferungerfolgt = lieferungerfolgt;
    }

    private String transportdienstleister;

    @javax.persistence.Column(name = "TRANSPORTDIENSTLEISTER")
    @Basic
    public String getTransportdienstleister() {
        return transportdienstleister;
    }

    public void setTransportdienstleister(String transportdienstleister) {
        this.transportdienstleister = transportdienstleister;
    }

    private Integer auftragsnr;

    @javax.persistence.Column(name = "AUFTRAGSNR")
    @Basic
    public Integer getAuftragsnr() {
        return auftragsnr;
    }

    public void setAuftragsnr(Integer auftragsnr) {
        this.auftragsnr = auftragsnr;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Transportauftrag that = (Transportauftrag) o;

        if (lieferungerfolgt != that.lieferungerfolgt) return false;
        if (transportauftragsnr != that.transportauftragsnr) return false;
        if (!auftragsnr.equals(that.auftragsnr)) return false;
        if (ausgangsdatum != null ? !ausgangsdatum.equals(that.ausgangsdatum) : that.ausgangsdatum != null)
            return false;
        if (transportdienstleister != null ? !transportdienstleister.equals(that.transportdienstleister) : that.transportdienstleister != null)
            return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = transportauftragsnr;
        result = 31 * result + (ausgangsdatum != null ? ausgangsdatum.hashCode() : 0);
        result = 31 * result + lieferungerfolgt;
        result = 31 * result + (transportdienstleister != null ? transportdienstleister.hashCode() : 0);
        result = 31 * result + auftragsnr.hashCode();
        return result;
    }

    public String toString(){
        return "Transportauftragsnr: " + getTransportauftragsnr() + "Ausgangsdatum: " + getAusgangsdatum() + "Transportdienstleister: " + getTransportdienstleister()+ "Lieferung erfolgt?: " + getLieferungerfolgt();
    }
}
